# Makefile for sdltutorials.com SDL Entities tutorial
# make by gaten: gaten DOT net AT gmail DOT com

# Compiler

# Flags
CXXOPTS=-Wall -O3 `sdl-config --cflags` -I./Behavior/

# Linking flags
LDLIBS=`sdl-config --libs` -lSDL -lSDL_image -lSDL_gfx



all: pikmen

distclean:
	rm -f *.gch *.o *~ Makefile tags pikmen

clean:
	rm -f *.gch *.o pikmen

pikmen: PikmenEnemy.o NewDummy.o AnimationPikmenBall.o Character.o setBehavior.o Monitor.o AnimationPikmenDown.o AnimationPlayerUp.o Kinematic.o Graph.o Grito.o AnimationPikmenLeft.o AnimationPlayerDown.o Obstacle.o AnimationPikmenEnemyLeft.o CApp.o AnimationPikmenEnemyRight.o AnimationPikmenUp.o Animation.o CEvent.o Nave.o AnimationPikmenEnemyDown.o Vectores.o State.o Pikmen.o AnimationPlayerLeft.o Triangle.o AnimationPikmenEnemyUp.o Olor.o setNothing.o AnimationPlayerRight.o AnimationPikmenRight.o main.o Player.o CSurface.o AnimationVolcan.o Waiting.o AvoidObstacle.o CollisionAvoidance.o Flee.o Wander.o Separation.o Nothing.o Align.o Face.o setSeek.o Arrive.o Seek.o VelocityMatch.o Behavior.o setArrive.o Obs_Sep.o setAlejar.o setFormation.o
	$(CXX) $(CXXOPTS) -o pikmen PikmenEnemy.o NewDummy.o AnimationPikmenBall.o Character.o setBehavior.o Monitor.o AnimationPikmenDown.o AnimationPlayerUp.o Kinematic.o Graph.o Grito.o AnimationPikmenLeft.o AnimationPlayerDown.o Obstacle.o AnimationPikmenEnemyLeft.o CApp.o AnimationPikmenEnemyRight.o AnimationPikmenUp.o Animation.o CEvent.o Nave.o AnimationPikmenEnemyDown.o Vectores.o State.o Pikmen.o AnimationPlayerLeft.o Triangle.o AnimationPikmenEnemyUp.o Olor.o setNothing.o AnimationPlayerRight.o AnimationPikmenRight.o main.o Player.o CSurface.o AnimationVolcan.o Waiting.o AvoidObstacle.o CollisionAvoidance.o Flee.o Wander.o Separation.o Nothing.o Align.o Face.o setSeek.o Arrive.o Seek.o VelocityMatch.o Behavior.o setArrive.o Obs_Sep.o setAlejar.o setFormation.o $(LDLIBS)

PikmenEnemy.o: PikmenEnemy.cpp PikmenEnemy.h setBehavior.h Behavior/AllBehavior.h Behavior/setSeek.h AnimationPikmenEnemyDown.h AnimationPikmenEnemyUp.h AnimationPikmenEnemyRight.h AnimationPikmenEnemyLeft.h AnimationPikmenBall.h CApp.h CSurface.h Character.h Animation.h Behavior/Behavior.h Kinematic.h Steering.h Behavior/Align.h Behavior/Arrive.h Behavior/AvoidObstacle.h Behavior/CollisionAvoidance.h Behavior/Face.h Behavior/Flee.h Behavior/Nothing.h Behavior/Seek.h Behavior/Separation.h Behavior/VelocityMatch.h Behavior/Wander.h Behavior/Waiting.h CEvent.h Obstacle.h Graph.h State.h Vectores.h AnimationVolcan.h Platform.h
	$(CXX) $(CXXOPTS) -c PikmenEnemy.cpp

NewDummy.o: NewDummy.cpp NewDummy.h setBehavior.h Behavior/AllBehavior.h Behavior/setSeek.h AnimationPikmenDown.h AnimationPikmenUp.h AnimationPikmenRight.h AnimationPikmenLeft.h CSurface.h Character.h Behavior/Align.h Behavior/Nothing.h Behavior/Face.h Behavior/Wander.h Behavior/VelocityMatch.h Behavior/Seek.h Behavior/Arrive.h Behavior/Waiting.h Animation.h Behavior/Behavior.h Kinematic.h Steering.h Behavior/AvoidObstacle.h Behavior/CollisionAvoidance.h Behavior/Flee.h Behavior/Separation.h CEvent.h Obstacle.h Graph.h State.h Vectores.h AnimationVolcan.h Platform.h
	$(CXX) $(CXXOPTS) -c NewDummy.cpp

AnimationPikmenBall.o: AnimationPikmenBall.cpp AnimationPikmenBall.h CSurface.h
	$(CXX) $(CXXOPTS) -c AnimationPikmenBall.cpp

Character.o: Character.cpp Character.h CEvent.h CSurface.h setBehavior.h CApp.h Steering.h Behavior/Behavior.h Graph.h State.h Kinematic.h Obstacle.h Vectores.h Animation.h AnimationVolcan.h Platform.h
	$(CXX) $(CXXOPTS) -c Character.cpp

setBehavior.o: setBehavior.cpp setBehavior.h Character.h Steering.h Behavior/Behavior.h Kinematic.h CEvent.h Graph.h State.h Vectores.h Obstacle.h Platform.h CSurface.h Animation.h AnimationVolcan.h
	$(CXX) $(CXXOPTS) -c setBehavior.cpp

Monitor.o: Monitor.cpp Monitor.h Character.h Player.h PikmenEnemy.h Pikmen.h Obstacle.h CSurface.h CApp.h Grito.h Vectores.h Nave.h Steering.h Behavior/Behavior.h setBehavior.h CEvent.h Graph.h State.h Animation.h Behavior/AllBehavior.h AnimationVolcan.h Platform.h Kinematic.h Behavior/Align.h Behavior/Arrive.h Behavior/AvoidObstacle.h Behavior/CollisionAvoidance.h Behavior/Face.h Behavior/Flee.h Behavior/Nothing.h Behavior/Seek.h Behavior/Separation.h Behavior/VelocityMatch.h Behavior/Wander.h Behavior/Waiting.h
	$(CXX) $(CXXOPTS) -c Monitor.cpp

AnimationPikmenDown.o: AnimationPikmenDown.cpp AnimationPikmenDown.h CSurface.h
	$(CXX) $(CXXOPTS) -c AnimationPikmenDown.cpp

AnimationPlayerUp.o: AnimationPlayerUp.cpp AnimationPlayerUp.h CSurface.h
	$(CXX) $(CXXOPTS) -c AnimationPlayerUp.cpp

Kinematic.o: Kinematic.cpp Kinematic.h Steering.h Vectores.h CApp.h Platform.h
	$(CXX) $(CXXOPTS) -c Kinematic.cpp

Graph.o: Graph.cpp Graph.h Vectores.h Platform.h
	$(CXX) $(CXXOPTS) -c Graph.cpp

Grito.o: Grito.cpp Grito.h Vectores.h Obstacle.h CApp.h Platform.h CSurface.h Character.h Animation.h AnimationVolcan.h Steering.h Behavior/Behavior.h setBehavior.h CEvent.h Graph.h State.h Kinematic.h
	$(CXX) $(CXXOPTS) -c Grito.cpp

AnimationPikmenLeft.o: AnimationPikmenLeft.cpp AnimationPikmenLeft.h CSurface.h
	$(CXX) $(CXXOPTS) -c AnimationPikmenLeft.cpp

AnimationPlayerDown.o: AnimationPlayerDown.cpp AnimationPlayerDown.h CSurface.h
	$(CXX) $(CXXOPTS) -c AnimationPlayerDown.cpp

Obstacle.o: Obstacle.cpp Obstacle.h CSurface.h CApp.h Vectores.h Character.h Animation.h AnimationVolcan.h Platform.h Steering.h Behavior/Behavior.h setBehavior.h CEvent.h Graph.h State.h Kinematic.h
	$(CXX) $(CXXOPTS) -c Obstacle.cpp

AnimationPikmenEnemyLeft.o: AnimationPikmenEnemyLeft.cpp AnimationPikmenEnemyLeft.h CSurface.h
	$(CXX) $(CXXOPTS) -c AnimationPikmenEnemyLeft.cpp

CApp.o: CApp.cpp 
	$(CXX) $(CXXOPTS) -c CApp.cpp

AnimationPikmenEnemyRight.o: AnimationPikmenEnemyRight.cpp AnimationPikmenEnemyRight.h CSurface.h
	$(CXX) $(CXXOPTS) -c AnimationPikmenEnemyRight.cpp

AnimationPikmenUp.o: AnimationPikmenUp.cpp AnimationPikmenUp.h CSurface.h
	$(CXX) $(CXXOPTS) -c AnimationPikmenUp.cpp

Animation.o: Animation.cpp 
	$(CXX) $(CXXOPTS) -c Animation.cpp

CEvent.o: CEvent.cpp 
	$(CXX) $(CXXOPTS) -c CEvent.cpp

Nave.o: Nave.cpp Nave.h Behavior/setArrive.h setNothing.h CApp.h CSurface.h Character.h Behavior/AllBehavior.h Animation.h setBehavior.h CEvent.h Obstacle.h Steering.h Behavior/Behavior.h Graph.h State.h Behavior/Align.h Behavior/Arrive.h Behavior/AvoidObstacle.h Behavior/CollisionAvoidance.h Behavior/Face.h Behavior/Flee.h Behavior/Nothing.h Behavior/Seek.h Behavior/Separation.h Behavior/VelocityMatch.h Behavior/Wander.h Behavior/Waiting.h Kinematic.h AnimationVolcan.h Vectores.h Platform.h
	$(CXX) $(CXXOPTS) -c Nave.cpp

AnimationPikmenEnemyDown.o: AnimationPikmenEnemyDown.cpp AnimationPikmenEnemyDown.h CSurface.h
	$(CXX) $(CXXOPTS) -c AnimationPikmenEnemyDown.cpp

Vectores.o: Vectores.cpp Vectores.h Platform.h
	$(CXX) $(CXXOPTS) -c Vectores.cpp

State.o: State.cpp Behavior/setAlejar.h Kinematic.h State.h CApp.h Graph.h setBehavior.h CEvent.h CSurface.h Obstacle.h Steering.h Vectores.h Behavior/Behavior.h Character.h Animation.h AnimationVolcan.h Platform.h
	$(CXX) $(CXXOPTS) -c State.cpp

Pikmen.o: Pikmen.cpp Pikmen.h setBehavior.h Behavior/AllBehavior.h Behavior/setSeek.h Behavior/setFormation.h Behavior/setAlejar.h CApp.h AnimationPikmenDown.h AnimationPikmenUp.h AnimationPikmenRight.h AnimationPikmenLeft.h AnimationPikmenBall.h CSurface.h Character.h Animation.h Behavior/Behavior.h Kinematic.h Steering.h Behavior/Align.h Behavior/Arrive.h Behavior/AvoidObstacle.h Behavior/CollisionAvoidance.h Behavior/Face.h Behavior/Flee.h Behavior/Nothing.h Behavior/Seek.h Behavior/Separation.h Behavior/VelocityMatch.h Behavior/Wander.h Behavior/Waiting.h CEvent.h Obstacle.h Graph.h State.h Vectores.h AnimationVolcan.h Platform.h
	$(CXX) $(CXXOPTS) -c Pikmen.cpp

AnimationPlayerLeft.o: AnimationPlayerLeft.cpp AnimationPlayerLeft.h CSurface.h
	$(CXX) $(CXXOPTS) -c AnimationPlayerLeft.cpp

Triangle.o: Triangle.cpp Triangle.h Graph.h
	$(CXX) $(CXXOPTS) -c Triangle.cpp

AnimationPikmenEnemyUp.o: AnimationPikmenEnemyUp.cpp AnimationPikmenEnemyUp.h CSurface.h
	$(CXX) $(CXXOPTS) -c AnimationPikmenEnemyUp.cpp

Olor.o: Olor.cpp Olor.h CApp.h
	$(CXX) $(CXXOPTS) -c Olor.cpp

setNothing.o: setNothing.cpp setNothing.h setBehavior.h Behavior/Behavior.h Kinematic.h Steering.h Vectores.h Platform.h
	$(CXX) $(CXXOPTS) -c setNothing.cpp

AnimationPlayerRight.o: AnimationPlayerRight.cpp AnimationPlayerRight.h CSurface.h
	$(CXX) $(CXXOPTS) -c AnimationPlayerRight.cpp

AnimationPikmenRight.o: AnimationPikmenRight.cpp AnimationPikmenRight.h CSurface.h
	$(CXX) $(CXXOPTS) -c AnimationPikmenRight.cpp

main.o: main.cpp CApp.h
	$(CXX) $(CXXOPTS) -c main.cpp

Player.o: Player.cpp Player.h CSurface.h Character.h Behavior/AllBehavior.h setBehavior.h Vectores.h CApp.h Graph.h Triangle.h AnimationPlayerDown.h AnimationPlayerUp.h AnimationPlayerRight.h AnimationPlayerLeft.h Animation.h Steering.h Behavior/Behavior.h CEvent.h State.h Behavior/Align.h Behavior/Arrive.h Behavior/AvoidObstacle.h Behavior/CollisionAvoidance.h Behavior/Face.h Behavior/Flee.h Behavior/Nothing.h Behavior/Seek.h Behavior/Separation.h Behavior/VelocityMatch.h Behavior/Wander.h Behavior/Waiting.h Kinematic.h Platform.h Obstacle.h AnimationVolcan.h
	$(CXX) $(CXXOPTS) -c Player.cpp

CSurface.o: CSurface.cpp 
	$(CXX) $(CXXOPTS) -c CSurface.cpp

AnimationVolcan.o: AnimationVolcan.cpp AnimationVolcan.h CSurface.h
	$(CXX) $(CXXOPTS) -c AnimationVolcan.cpp

Waiting.o: Behavior/Waiting.cpp Behavior/AllBehavior.h Character.h Kinematic.h Steering.h Behavior/Waiting.h Behavior/Align.h Behavior/Arrive.h Behavior/AvoidObstacle.h Behavior/Behavior.h Behavior/CollisionAvoidance.h Behavior/Face.h Behavior/Flee.h Behavior/Nothing.h Behavior/Seek.h Behavior/Separation.h Behavior/VelocityMatch.h Behavior/Wander.h setBehavior.h CEvent.h Graph.h State.h Vectores.h CSurface.h Obstacle.h Platform.h Animation.h AnimationVolcan.h
	$(CXX) $(CXXOPTS) -c Behavior/Waiting.cpp

AvoidObstacle.o: Behavior/AvoidObstacle.cpp Behavior/AvoidObstacle.h Vectores.h Behavior/Seek.h Platform.h Behavior/Behavior.h Obstacle.h Kinematic.h Steering.h CSurface.h Character.h Animation.h AnimationVolcan.h setBehavior.h CEvent.h Graph.h State.h
	$(CXX) $(CXXOPTS) -c Behavior/AvoidObstacle.cpp

CollisionAvoidance.o: Behavior/CollisionAvoidance.cpp Behavior/CollisionAvoidance.h Character.h Vectores.h Obstacle.h Behavior/Behavior.h Steering.h setBehavior.h CEvent.h Graph.h State.h Platform.h CSurface.h Animation.h AnimationVolcan.h Kinematic.h
	$(CXX) $(CXXOPTS) -c Behavior/CollisionAvoidance.cpp

Flee.o: Behavior/Flee.cpp Behavior/Flee.h Behavior/Seek.h Behavior/Behavior.h Obstacle.h Kinematic.h Steering.h CSurface.h Character.h Animation.h AnimationVolcan.h Vectores.h setBehavior.h CEvent.h Graph.h State.h Platform.h
	$(CXX) $(CXXOPTS) -c Behavior/Flee.cpp

Wander.o: Behavior/Wander.cpp Behavior/Wander.h Behavior/Face.h Behavior/Align.h Behavior/Behavior.h Kinematic.h Steering.h Vectores.h Platform.h
	$(CXX) $(CXXOPTS) -c Behavior/Wander.cpp

Separation.o: Behavior/Separation.cpp Behavior/Separation.h Vectores.h Character.h Obstacle.h Behavior/Obs_Sep.h CApp.h Behavior/Behavior.h Platform.h Steering.h setBehavior.h CEvent.h Graph.h State.h CSurface.h Animation.h AnimationVolcan.h Kinematic.h
	$(CXX) $(CXXOPTS) -c Behavior/Separation.cpp

Nothing.o: Behavior/Nothing.cpp Behavior/Nothing.h Behavior/Behavior.h Kinematic.h Steering.h Vectores.h Platform.h
	$(CXX) $(CXXOPTS) -c Behavior/Nothing.cpp

Align.o: Behavior/Align.cpp Behavior/Align.h Behavior/Behavior.h Kinematic.h Steering.h Vectores.h Platform.h
	$(CXX) $(CXXOPTS) -c Behavior/Align.cpp

Face.o: Behavior/Face.cpp Behavior/Face.h Character.h Behavior/Align.h Steering.h Behavior/Behavior.h setBehavior.h CEvent.h Graph.h State.h Kinematic.h Obstacle.h Vectores.h CSurface.h Animation.h AnimationVolcan.h Platform.h
	$(CXX) $(CXXOPTS) -c Behavior/Face.cpp

setSeek.o: Behavior/setSeek.cpp Behavior/setSeek.h Behavior/Seek.h Behavior/Arrive.h Behavior/Face.h Behavior/Separation.h Steering.h Character.h Obstacle.h setBehavior.h CEvent.h CSurface.h Behavior/Behavior.h Behavior/Align.h Graph.h State.h Animation.h AnimationVolcan.h Kinematic.h Vectores.h Platform.h
	$(CXX) $(CXXOPTS) -c Behavior/setSeek.cpp

Arrive.o: Behavior/Arrive.cpp Behavior/Arrive.h Character.h CApp.h Behavior/Behavior.h Behavior/Seek.h Steering.h setBehavior.h CEvent.h Graph.h State.h Kinematic.h Obstacle.h Vectores.h CSurface.h Animation.h AnimationVolcan.h Platform.h
	$(CXX) $(CXXOPTS) -c Behavior/Arrive.cpp

Seek.o: Behavior/Seek.cpp Behavior/Seek.h Obstacle.h CApp.h Behavior/Behavior.h CSurface.h Character.h Animation.h AnimationVolcan.h Kinematic.h Steering.h setBehavior.h CEvent.h Graph.h State.h Vectores.h Platform.h
	$(CXX) $(CXXOPTS) -c Behavior/Seek.cpp

VelocityMatch.o: Behavior/VelocityMatch.cpp Behavior/VelocityMatch.h Behavior/Behavior.h Kinematic.h Steering.h Vectores.h Platform.h
	$(CXX) $(CXXOPTS) -c Behavior/VelocityMatch.cpp

Behavior.o: Behavior/Behavior.cpp Kinematic.h Steering.h Vectores.h Character.h CApp.h Platform.h Behavior/Behavior.h setBehavior.h CEvent.h Graph.h State.h Obstacle.h CSurface.h Animation.h AnimationVolcan.h
	$(CXX) $(CXXOPTS) -c Behavior/Behavior.cpp

setArrive.o: Behavior/setArrive.cpp Behavior/Arrive.h Behavior/setArrive.h Behavior/Behavior.h Behavior/Seek.h setBehavior.h CEvent.h CSurface.h Obstacle.h Kinematic.h Steering.h Character.h Animation.h AnimationVolcan.h Vectores.h Graph.h State.h Platform.h
	$(CXX) $(CXXOPTS) -c Behavior/setArrive.cpp

Obs_Sep.o: Behavior/Obs_Sep.cpp Character.h Vectores.h Obstacle.h Behavior/Obs_Sep.h Steering.h Behavior/Behavior.h setBehavior.h CEvent.h Graph.h State.h Platform.h CSurface.h Animation.h AnimationVolcan.h Kinematic.h
	$(CXX) $(CXXOPTS) -c Behavior/Obs_Sep.cpp

setAlejar.o: Behavior/setAlejar.cpp Behavior/setAlejar.h Behavior/Seek.h Behavior/Arrive.h Behavior/Face.h Behavior/Separation.h Steering.h Character.h Obstacle.h setBehavior.h CEvent.h CSurface.h Behavior/Behavior.h Behavior/Align.h Graph.h State.h Animation.h AnimationVolcan.h Kinematic.h Vectores.h Platform.h
	$(CXX) $(CXXOPTS) -c Behavior/setAlejar.cpp

setFormation.o: Behavior/setFormation.cpp Behavior/setFormation.h Behavior/Seek.h Behavior/Arrive.h Behavior/Face.h Behavior/Separation.h Steering.h Character.h Obstacle.h setBehavior.h CEvent.h CSurface.h Behavior/Behavior.h Behavior/Align.h Graph.h State.h Animation.h AnimationVolcan.h Kinematic.h Vectores.h Platform.h
	$(CXX) $(CXXOPTS) -c Behavior/setFormation.cpp

